package com.xbongbong.saas.enums;

import com.xbongbong.i18n.util.I18nMessageUtil;

/**
 * 知识库错误码枚举
 *
 * @author 阮思程
 * @version v1.0
 */
public enum KnowledgeErrorCodeEnum {
    // 未知错误
    API_ERROR_UNKNOWN(404404, "enum.errorCode.msg.api_error_unknown"),
    //知识库相关
    API_ERROR_320001(320001, "enum.errorCode.msg.api_error_320001"),
    API_ERROR_320002(320002, "enum.errorCode.msg.api_error_320002"),
    API_ERROR_320003(320003, "enum.errorCode.msg.api_error_320003"),
    API_ERROR_320004(320004, "enum.errorCode.msg.api_error_320004"),
    API_ERROR_320005(320005, "enum.errorCode.msg.api_error_320005"),
    API_ERROR_320006(320006, "enum.errorCode.msg.api_error_320006"),
    API_ERROR_320007(320007, "enum.errorCode.msg.api_error_320007"),
    API_ERROR_320008(320008, "enum.errorCode.msg.api_error_320008"),
    API_ERROR_320013(320013, "enum.errorCode.msg.api_error_320013"),
    API_ERROR_320009(320009, "enum.errorCode.msg.api_error_320009"),
    API_ERROR_320010(320010, "enum.errorCode.msg.api_error_320010"),
    API_ERROR_320011(320011, "enum.errorCode.msg.api_error_320011"),
    API_ERROR_320012(320012, "enum.errorCode.msg.api_error_320012"),
    API_ERROR_320014(320014, "enum.errorCode.msg.api_error_320014"),
    API_ERROR_320015(320015, "enum.errorCode.msg.api_error_320015"),
    API_ERROR_320016(320016, "enum.errorCode.msg.api_error_320016"),
    API_ERROR_320017(320017, "enum.errorCode.msg.api_error_320017"),
    API_ERROR_320018(320018, "enum.errorCode.msg.api_error_320018"),
    API_ERROR_320019(320019, "enum.errorCode.msg.api_error_320019"),
    API_ERROR_320020(320020, "enum.errorCode.msg.api_error_320020"),
    ;


    /**
     * 枚举值--错误码--
     */
    private final int code;

    /**
     * 错误信息--错误描述
     */
    private final String msg;

    /**
     * 构造一个<code>ErrorCodeEnum</code>枚举对象
     *
     * @param code 错误码
     * @param msg  错误描述
     */
    KnowledgeErrorCodeEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return I18nMessageUtil.getMessage(msg);
    }

    /**
     * 通过枚举<code>code</code>获得枚举
     *
     * @param code 错误码
     * @return ErrorCodeEnum
     */
    public static KnowledgeErrorCodeEnum getByCode(Integer code) {
        for (KnowledgeErrorCodeEnum cacheCode : values()) {
            if (code.equals(cacheCode.getCode())) {
                return cacheCode;
            }
        }
        return API_ERROR_UNKNOWN;
    }
}
